package it.orma.iridehr.validators;

import java.util.Iterator;
import java.util.List;

import it.orma.iridehr.controllers.ricerca.AttitudiniForm;
import it.orma.iridehr.entities.Attitudine;

import org.springframework.binding.message.MessageBuilder;
import org.springframework.binding.message.MessageContext;
import org.springframework.binding.validation.ValidationContext;
import org.springframework.stereotype.Component;

@Component
public class AttitudiniFormValidator {
	public void validate(final AttitudiniForm form, ValidationContext context) {
		MessageContext messages = context.getMessageContext();
		List<Attitudine> attitudini = form.getAttitudini();
		Iterator<Attitudine> attIt = attitudini.iterator();
		int i=0;
		while(attIt.hasNext()){
			Attitudine att = attIt.next();
			
			if (att.getIdRispostaMeglio()==-1){
				messages.addMessage(new MessageBuilder().error().source("attitudini["+i+"].idRispostaMeglio")
						.code("error.campo.obbligatorio").build());
			}
			if (att.getIdRispostaPeggio()==-1){
				messages.addMessage(new MessageBuilder().error().source("attitudini["+i+"].idRispostaPeggio")
						.code("error.campo.obbligatorio").build());
			}
			if ((att.getIdRispostaPeggio()!=-1 &&att.getIdRispostaMeglio()!=-1)){
				if (att.getIdRispostaMeglio()==att.getIdRispostaPeggio()){
					messages.addMessage(new MessageBuilder().error().source("attitudini["+i+"].idRispostaPeggio")
							.code("error.campo.nonvalido").build());
				}
			}
			i++;
		}
	}

}
